Page({

  /**
   * 页面的初始数据
   */
  data: {
     // 用于存储评价内容
     evalContent: '',
     // 用于存储评分，初始为0分
     rating: 0,
     orderId:'',//订单id
     productId:'',//订单商品id
     commentImg:'',//本地评论图片
     commentVideo:'',//本地评论视频
     commentImg1:'',//本地评论图片
     commentVideo1:'',//本地评论视频
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const app = getApp();
    const baseUrl = app.globalConfig.baseUrl; // 获取本地连接地址
    const token = wx.getStorageSync('token');
    this.setData({
      orderId:options.id
    })
    wx.request({
      url: baseUrl+'/product/productOrder/'+options.id,
      method:'GET',
      header:{
        'Authorization': 'Bearer\u0020' + token
      },
      success:(res)=>{
        this.setData({
          productId:res.data.data.productId
        })
      }
    })
  },

  // 输入框内容改变时触发的函数
  onInputChange(e) {
    this.setData({
      evalContent: e.detail.value
    });
  },
  // 点击五角星评分时触发的函数
  onStarTap(e) {
    const that = this;  // 保存当前页面实例的 this 指向
    const index = e.currentTarget.dataset.index;
    that.setData({
      rating: index + 1
    });
    const stars = that.selectAllComponents('.star.icon');
    for (let i = 0; i < stars.length; i++) {
      if (i <= index) {
        stars[i].setData({
          '__class': 'icon icon_yellow'
        });
      } else {
        stars[i].setData({
          '__class': 'icon icon_gray'
        });
      }
    }
},
  // 点击提交评价按钮时触发的函数
  onSubmit() {
    const app = getApp();
    const baseUrl = app.globalConfig.baseUrl; // 获取本地连接地址
    const userId=app.globalData.userInfo.userId
    const token = wx.getStorageSync('token');
    if (this.data.evalContent === '') {
      wx.showToast({
        title: '请输入评价内容',
        icon: 'none'
      });
      return;
    }
    wx.request({
      url: baseUrl+'/product/productComment',
      method:'POST',
      data:{
        commentContent:this.data.evalContent,
        productScore:this.data.rating,
        commentImg:this.data.commentImg1,
        commentVideo:this.data.commentVideo1,
        userId:userId,
        productId:this.data.productId,
        orderId:this.data.orderId
      },
      header:{
        'Authorization': 'Bearer\u0020' + token
      },
      success:(res)=>{
        wx.showToast({
          title: '2秒后跳转',
          icon: 'success'
        });
        //修改订单状态
        wx.request({
          url: baseUrl+'/product/productOrder',
          method:'PUT',
          data:{
            id:this.data.orderId,
            stateId:6
          },
          header:{
            'Authorization': 'Bearer\u0020' + token
          },
        })
        // 添加setTimeout，延迟2秒执行跳转操作，并弹出提示框说明2秒后跳转
        setTimeout(() => {
          wx.reLaunch({
            url: '/packageOnlineStore/pages/evaluationCenter/evaluationCenter',
          })
        }, 2000);
      }
    })
    // 重置评价
    this.setData({
      rating: 0
    });
     // 重置评价内容为空字符串
     this.setData({
      evalContent: ''
    });
    //重置星星
    const stars = this.selectAllComponents('.star.icon');
    for (let i = 0; i < stars.length; i++) {
        stars[i].setData({
            '__class': 'icon icon_gray'
        });
    }
  },
  //选择图片
  optionImg(){
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      maxDuration: 30,
      camera: 'back',
      success:(res) =>{
        const filePath = res.tempFiles[0].tempFilePath; // 从返回结果中获取图片文件路径
        this.setData({
          commentImg:filePath
        })
        this.uploadImages(filePath); // 将文件路径传递给uploadImages函数
      }
    })
  },
  // 上传图片函数
  uploadImages(filePath) {
    const app = getApp();
    const baseUrl = app.globalConfig.baseUrl; // 获取本地连接地址
    const userId=app.globalData.userInfo.userId
    const token = wx.getStorageSync('token');
    wx.uploadFile({
      url: baseUrl+'/common/upload', // 替换为实际图片上传接口地址
      filePath: filePath,
      name: 'file', // 和后端约定的字段名
      header: {
        'content-type': 'multipart/form-data',
        'Authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        const dataObj = JSON.parse(res.data); // 将字符串类型的 JSON 数据解析为对象
        const fileName = dataObj.fileName; // 获取 fileName 字段的值
        this.setData({
          commentImg1:fileName
        })
      },
    });
  },
  //选择视频
  optionVideo(){
    wx.chooseMedia({
      count: 1,
      mediaType: ['video'],
      sourceType: ['album', 'camera'],
      maxDuration: 30,
      camera: 'back',
      success:(res) =>{
        const filePath = res.tempFiles[0].tempFilePath; // 从返回结果中获取图片文件路径
        this.setData({
          commentVideo:filePath
        })
        this.uploadVideo(filePath); // 将文件路径传递给uploadImages函数
      }
    })
  },
  // 上传视频函数
  uploadVideo(filePath) {
    const app = getApp();
    const baseUrl = app.globalConfig.baseUrl; // 获取本地连接地址
    const userId = app.globalData.userId;
    const token = wx.getStorageSync('token');
    wx.uploadFile({
      url: baseUrl+'/common/upload', // 替换为实际图片上传接口地址
      filePath: filePath,
      name: 'file', // 和后端约定的字段名
      header: {
        'content-type': 'multipart/form-data',
        'Authorization': 'Bearer\u0020' + token
      },
      success: (res) => {
        const dataObj = JSON.parse(res.data); // 将字符串类型的 JSON 数据解析为对象
        const fileName = dataObj.fileName; // 获取 fileName 字段的值
        this.setData({
          commentVideo1:fileName
        })
      },
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})